package paquete;

import java.io.*;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public final class LeerFichero {
 
 /**
  * Devuelve el texto del archivo en la ruta pasada como argumento, ejemplo:
  * "C:\Documentos\nota.txt"
  * @param ruta - La ruta del archivo.
  * @return - El texto dentro del archivo.
  */
	
	
	
	
 public static String leerTexto(String ruta){
  //Representa el texto dentro del archivo, por ahora, vac�o.
  String texto = "";
  
  //El archivo de donde sacamos el texto.
  File archivo = new File(ruta);
  
  try {
   //Le ponemos al lector de archivo 'fr' el atributo 'archivo' en su constructor para leerlo despu�s.
   FileReader fr = new FileReader(archivo);
   
   //Esta parte ayuda a la eficiencia de la lectura.
   BufferedReader buffer = new BufferedReader(fr);
   
   //Nos indica cuando es el fin del archivo.
   boolean fin = false;
   
   //B�fer para guardar las l�neas de texto.
   StringBuffer sbf = new StringBuffer();
   
   //Salto de l�nea para que el texto salga en l�neas separadas (opcional)
   String nl = System.getProperty("line.separator");
   
   //Mientras no sea el fin del archivo:
   while(fin == false){
    
    //Leemos una l�nea del archivo.
    String linea = buffer.readLine();
    //System.out.println("Linea");
    //System.out.println(linea);
    
    //Si la l�nea no est� vac�a...
    if(linea != null){
     //Agregamos al b�fer la l�nea y el salto de l�nea 'nl' (opcional)
    	//System.out.println("sbf");
        //System.out.println(sbf);
     sbf.append(linea + nl);
    }
    else{
     //De lo contrario damos fin al ciclo while.
     fin = true;
    }
   }
   
   //Asignamos a 'texto' lo que se agreg� al b�fer:
   texto = sbf.toString();
   
  } 
  catch (FileNotFoundException e) {
   //Esto se ejecuta si el archivo no fue encontrado.
   e.printStackTrace();
  }
  catch (IOException e) {
   //Esto se ejecuta si hay un error en la lectura del archivo.
   e.printStackTrace();
  }
  
  //Devolvemos el texto.
  return texto;
 } 



}

